home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / gfx / board / rtgmv13.lha / goodies / rtggadgets / GadgetDemo.c < prev    next >
C/C++ Source or Header  |  1996-06-28  |  4KB  |  133 lines

  1. #include "global.h"
  2. #include "RTGGadgets.h"
  3.  
  4. struct RTGMasterBase *RTGMasterBase;
  5. struct RtgScreen *RtgScreen;
  6. struct ScreenReq *sr;
  7. extern struct UtilityBase *UtilityBase;
  8. extern struct Library *DOSBase;
  9.  
  10. struct TagItem gtag[] = {
  11.     grd_BytesPerRow,    0,      //  0
  12.     grd_Width,          0,      //  1
  13.     grd_Height,         0,      //  2
  14.     grd_Depth,          0,      //  3
  15.     grd_PixelLayout,    0,      //  4
  16.     grd_ColorSpace,     0,      //  5
  17.     grd_PlaneSize,      0,      //  6
  18.     grd_BusSystem,      0,      //  7
  19.     TAG_DONE,           0
  20. };
  21.  
  22.  
  23. struct TagItem rtag[] = {
  24.     smr_MinWidth,       320,
  25.     smr_MinHeight,      200,
  26.     smr_MaxWidth,       800,
  27.     smr_MaxHeight,      600,
  28.     smr_ChunkySupport,  -1,
  29.     smr_PlanarSupport,  -1,
  30.     smr_Buffers,        2,
  31.     smr_PrefsFileName,  (ULONG)"RTGGadgetDemo.prefs",
  32.     TAG_DONE,           NULL
  33. };
  34.  
  35.  
  36. struct TagItem tacks[] = {
  37.     TAG_DONE,0
  38. };
  39.  
  40.  
  41. void CloseAll(void) {
  42.  
  43.     if (RTGMasterBase) CloseLibrary((struct Library *)RTGMasterBase);
  44.     RTGGCloseInput();
  45. }
  46.  
  47.  
  48. void OpenAll(void) {
  49.  
  50.     RTGMasterBase = (struct RTGMasterBase *)OpenLibrary("rtgmaster.library",0L);
  51.     if (!RTGMasterBase) {
  52.         printf("You need RTG Library to run this game\n");
  53.         exit(0);
  54.     }
  55.  
  56.     if (!RTGGOpenInput()) {
  57.         printf("No input device present. You couldn`t have started this game. Strange\n");
  58.         CloseAll();
  59.         exit(0);
  60.     }
  61.  
  62. }
  63.  
  64. void main() {
  65.  
  66.     struct RTGGList *list;
  67.     int i;
  68.  
  69.     OpenAll();
  70.  
  71.     sr = RtgScreenModeReq(rtag);
  72.     if (sr) {
  73.         RtgScreen = OpenRtgScreen(sr, tacks);
  74.         if (RtgScreen) {
  75.             LockRtgScreen(RtgScreen);
  76.             GetRtgScreenData(RtgScreen, gtag);
  77.             list = CreateRTGGList(RtgScreen, 0);
  78.             printf("Gadget list: %x\n", 0);
  79.  
  80.             i = CreateRTGGadget(list, 1, RGADT_LeftEdge,    20,
  81.                                          RGADT_TopEdge,     20,
  82.                                          RGADT_Width,      130,
  83.                                          RGADT_Height,      30,
  84.                                          RGADT_Flags,       RGADF_HITHILITE,
  85.                                          RGADT_HitPen,      1,
  86.                                          RGADT_UpPen,       2,
  87.                                          RGADT_DownPen,     3,
  88.                                          RGADT_Key,         'p',
  89.                                          TAG_DONE);
  90.             printf("Created Gadget id :%d\n", i);
  91.             i = CreateRTGGadget(list, 2, RGADT_LeftEdge,    20,
  92.                                          RGADT_TopEdge,     60,
  93.                                          RGADT_Width,      130,
  94.                                          RGADT_Height,      30,
  95.                                          RGADT_Flags,       RGADF_HITHILITE,
  96.                                          RGADT_HitPen,      1,
  97.                                          RGADT_UpPen,       2,
  98.                                          RGADT_DownPen,     3,
  99.                                          RGADT_Key,         'q',
  100.                                          TAG_DONE);
  101.             printf("Created Gadget id :%d\n", i);
  102.  
  103.  
  104.             RTGGAddIPH();
  105.             DrawRTGGList(list);
  106.  
  107.  
  108.             while (1) {
  109.                 RefreshRTGGList(list);
  110.                 if (list->gl_Selected) {
  111.                     if (list->gl_Selected->rg_ID == 1) {
  112.                         printf("Ouch, that hurt\n");
  113.                         list->gl_Selected = NULL;
  114.                     }
  115.                     if (list->gl_Selected->rg_ID == 2) {
  116.                         break;
  117.                     }
  118.                 }
  119.             }
  120.             if (DeleteRTGGList(list, TRUE)) {
  121.                 printf("List deleted\n");
  122.             } else {
  123.                 printf("List not deleted\n");
  124.             }
  125.             RTGGRemIPH();
  126.             UnlockRtgScreen(RtgScreen);
  127.             CloseRtgScreen(RtgScreen);
  128.         }
  129.     }
  130. }
  131.  
  132.  
  133.